home *** CD-ROM | disk | FTP | other *** search
/ Macromedia Multimedia Showcase 6.0 / Macromedia Multimedia Showcase v6.0 WIN-MAC (XMSH60CD)(Macromedia, Inc.)(1996).iso / pc / demosoft / freehand / data.5 / App / Usenglsh / lang8.dll / POST / 1148 < prev    next >
Text File  |  1996-10-03  |  3KB  |  101 lines

  1. userdict begin /ropedict 85 dict def end 
  2. ropedict begin   
  3. /blocksetup
  4. { q translate rotate scale n } def 
  5. /blockend
  6. { closepath fill } def
  7. /blockfinish
  8. { closepath fill Q } def
  9. /movetoproc { 
  10. dup /sby xdf 
  11. /spy xdf        
  12. dup /sbx xdf 
  13. /spx xdf        
  14. sbx sby m
  15. } def
  16. /1stlinetoproc 
  17. { /esy xdf  /esx xdf 
  18. blockdata  
  19. /totdist totdist dist add def
  20. /sbx esx def  /sby esy def
  21. deltax 0 ne deltay 0 ne and
  22. { /prevtotdeltax deltax def  /prevtotdeltay deltay def } if
  23. } def
  24. /2ndlinetoproc 
  25. { /esy xdf  /esx xdf  
  26. bdflag false eq
  27. {blockdata esx spx eq esy spy eq and{lastsegdist}if}if
  28. offset ldelta add dist le
  29. deltax 0 eq deltay 0 eq and
  30. {/ang 0 def}{/ang deltay deltax atan def}ifelse
  31. offset 0 lt
  32. {/prevang prevdeltax 0 eq prevdeltay 0 eq and
  33. {0}{prevdeltay neg prevdeltax neg atan}ifelse def
  34. ang prevang sub abs dup 120 le exch 240 ge or
  35. {/offset 0 def bdflag true eq
  36. lastsegdist
  37. }if
  38. }if
  39. }if
  40. offset ldelta dist
  41. {/curdelta xdf  
  42. /ldeltax ang cos curdelta ldelta 2 div add mul def
  43. /ldeltay ang sin curdelta ldelta 2 div add mul def
  44. bll2 blw ang sbx ldeltax add sby ldeltay add drawblock
  45. /offset curdelta ldelta add dist sub def
  46. ldelta offset abs .001 add gt {exit} if
  47. }for
  48. /prevdeltax deltax def  /prevdeltay deltay def
  49. /deltax 0 def  /deltay 0 def
  50. /sbx esx def  /sby esy def
  51. }if
  52. }def
  53. /1stcloseproc  
  54. { spx spy 1stlinetoproc
  55. }def
  56. /2ndcloseproc  
  57. {sbx spx ne sby spy ne or{
  58. /esx spx def  /esy spy def blockdata  /bdflag true def lastsegdist
  59. spx spy 2ndlinetoproc}if
  60. }def
  61. /blockdata 
  62. { /deltay esy sby sub def  
  63. /deltax esx sbx sub def
  64. /dist deltay dup mul deltax dup mul add sqrt def
  65. }def
  66. /lastsegdist  
  67. {/dist dist offset sub ldelta div round ldelta mul offset add def
  68. }def
  69. end   
  70. /newrope  
  71. {
  72. supdict begin  
  73. ropedict begin   
  74. /color xdf
  75. colorchoice
  76. /spacing xdf
  77. /blw xdf 
  78. /bll xdf 
  79. /drawblock xdf
  80. q {flattenpath}fp
  81. /totdist 0 def   /totdeltax 0 def  /totdeltay 0 def
  82. {movetoproc} {1stlinetoproc} {} {1stcloseproc} pathforall
  83. /nm totdist bll spacing add div def
  84. /nm2 nm floor def  
  85. nm2 0 ne
  86. {
  87. /fr nm nm2 sub def  
  88. /nm2 fr 0.5 ge {nm2 1 add} {nm2} ifelse def
  89. /bll2 fr 0.5 ge {fr 1.0 sub} {fr} ifelse
  90. bll spacing add mul nm2 div bll add spacing add def
  91. /ldelta bll2 def 
  92. /bll2 bll2 bll bll spacing add div mul def
  93. /offset 0 def  /totdeltax 0 def  /totdeltay 0 def  /cnt 0 def
  94. /prevtotdeltax 0 def  /prevtotdeltay 0 def  /bdflag false def
  95. {movetoproc} {2ndlinetoproc} {} {2ndcloseproc} pathforall
  96. } if
  97. Q n end end  
  98. } def